package com.boss.thirteen.service;

import com.boss.salary.entity.MakeSalaryData;
import com.boss.salary.entity.SalaryPaymentRequisitionBack;
import com.boss.sys.ca.user.dto.UserDTO;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface IThirteenGenerateSalaryDataService {


    /**
     * 获取单位银行上传状态
     * @return
     */
    boolean getBankDataStatus(List<String> agencyIds);
    /**
     * 撤销支付
     * @param tokenid
     */
    void revokeSalaryData(String tokenid, MakeSalaryData makeSalaryData,UserDTO userDto);

    List<SalaryPaymentRequisitionBack> getPayBackData(Map<String, Object> queryParam,String tokenid,UserDTO userDTO) throws IOException;


    /**
     * 生成工资数据异步接口
     */
    Map<String,String> makeSalaryDataAsyncRedis(String tokenid, MakeSalaryData makeSalaryData, UserDTO userDto) ;

    /**
     * 检查是否可以正常申请支付
     * @param agencyIds
     * @param userDto
     * @return
     */
    String checkPayment(List<String> agencyIds, UserDTO userDto);

    /**
     * 检查是否指标足够
     * @param agencyIds
     * @param userDto
     * @return
     */
    List<Map<String,Object>> checkIsEnough(List<String> agencyIds, UserDTO userDto,List<Map<String, Object>> payList,boolean is_agency,String tokenid);

    /**
     * 检测生成支付的数据可生成状态
     * @param tokenid
     * @param makeSalaryData
     * @param userDto
     * @return
     */
    Map<String,Object>  checkSalaryData(String tokenid, MakeSalaryData makeSalaryData, UserDTO userDto);

}
